package com.example.zhapp_java.api;


import com.example.zhapp_java.models.Milestone;
import com.example.zhapp_java.models.Phase;
import com.example.zhapp_java.models.Project;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;


// ApiService.java
public interface ApiService {
    @GET("projects")
    Call<List<Project>> getProjects(@Query("search") String search);
    @GET("projects/{projectNo}")
    Call<Project> getProject(@Path("projectNo") String projectNo);
    @POST("projects")
    Call<Void> createProject(@Body Project project);

    @DELETE("projects/{projectNo}")
    Call<Void> deleteProject(@Path("projectNo") String projectNo);

    @GET("projects/{projectNo}/phases")
    Call<List<Phase>> getPhases(@Path("projectNo") String projectNo);

    @POST("projects/{projectNo}/phases")
    Call<Void> createPhase(@Path("projectNo") String projectNo, @Body Phase phase);

    // 添加以下接口方法
    @GET("projects/{projectNo}/milestones")
    Call<List<Milestone>> getMilestones(
            @Path("projectNo") String projectNo,
            @Query("phraseId") String phraseId
    );

    @PUT("projects")
    Call<Void> updateProject(@Body Project project);

    @PUT("projects/{projectNo}/phases")
    Call<Void> updatePhase(
            @Path("projectNo") String projectNo,
            @Body Phase phase
    );

    @DELETE("projects/{projectNo}/phases/{phraseId}")
    Call<Void> deletePhase(
            @Path("projectNo") String projectNo,
            @Path("phraseId") String phraseId
    );

    // 添加里程碑创建接口
    @POST("projects/{projectNo}/milestones")
    Call<Void> createMilestone(
            @Path("projectNo") String projectNo,
            @Query("phraseId") String phraseId,
            @Body Milestone milestone
    );
}